"""
重构后的事件系统

这个模块提供了一个清晰、模块化的事件系统，用于在持续学习过程中处理各种事件。

主要组件:
- EventType: 事件类型枚举
- EventContext: 事件上下文数据类
- EventManager: 事件管理器
- LearnerInterface, NetworkInterface: 接口定义
- 各种事件处理器
- 配置管理系统

使用示例:
    from learners.events import EventType, EventManager, ClassifierAlignmentHandler
    from learners.events.config import AlignmentConfig
    from learners.events.config_manager import quick_setup_events

    # 快速设置事件系统
    event_args = quick_setup_events("continual")

    # 或者手动创建
    manager = EventManager()
    config = AlignmentConfig(alignment_method="cosine")
    handler = ClassifierAlignmentHandler(config)
    manager.register(EventType.AFTER_TASK_TRAINING, handler)
"""
from .manager import BaseEventManager

# 处理器
from .handlers import BaseEventHandler, ClassifierAlignmentHandler, PostTrainingHandler, ArchitectureAnalysisEventHandler

# 新的事件系统组件
from .emitters import EventEmitter, NullEventEmitter, DefaultEventEmitter
from .decorators import (
    emit_events,
    emit_event_before,
    emit_event_after,
    emit_high_loss_event,
)
from .mixins import EventCapableMixin
from .factory import EventSystemFactory

# 配置管理 - 更新为简化接口
from .config import (
    EventConfig,
    HandlerConfig,
    configure_events,
)


__all__ = [
    # 核心组件,
    "BaseEventManager",
    # 处理器
    "BaseEventHandler",
    "ClassifierAlignmentHandler",
    "PostTrainingHandler",
    "ArchitectureAnalysisEventHandler",
    # 事件系统组件
    "EventEmitter",
    "NullEventEmitter",
    "DefaultEventEmitter",
    # 装饰器
    "emit_events",
    "emit_event_before",
    "emit_event_after",
    "emit_high_loss_event",
    # Mixin 类
    "EventCapableMixin",
    # 工厂
    "EventSystemFactory",
    # ===== SIMPLIFIED CONFIGURATION =====
    "EventConfig",  # New simplified config class
    "HandlerConfig",  # Handler configuration
    "configure_events",  # Main configuration function
]
